package com.fzn3.day08;

/**
 * @author fzn
 * 描述：  双端队列 两端都可以删除和添加
 * @program DataStructure
 * @create 2023/3/14 16:47
 **/
public interface Deque<E> {

    /**
     * 头部添加
     *
     * @param e e
     * @return boolean
     */
    boolean offerFirst(E e);

    /**
     * 尾部添加
     *
     * @param e e
     * @return boolean
     */
    boolean offerLast(E e);

    /**
     * 头部删除
     *
     * @return {@link E}
     */
    E pollFirst();

    /**
     * 尾部删除
     *
     * @return {@link E}
     */
    E pollLast();

    /**
     * 头部获取
     *
     * @return {@link E}
     */
    E peekFirst();

    /**
     * 尾部获取
     *
     * @return {@link E}
     */
    E peekLast();

    /**
     * 是否为空
     *
     * @return boolean
     */
    boolean isEmpty();

    /**
     * 队列是否满
     *
     * @return boolean
     */
    boolean isFull();


}
